package arr_sum


/*
	数组中包含正负数，求 子数组中累加和等 K 的子数组最大长度
*/
func GetLongestSumSubArrayLength(arr []int, K int) int {
	HMap := map[int]int{}
	HMap[0] = -1
	ans := 0
	sum := 0
	for i:=0; i<len(arr); i++ {
		sum += arr[i]
		if v, ok := HMap[sum-K]; ok {
			ans = Max(ans, i-v)
		}
		if _, ok := HMap[sum]; !ok {
			HMap[sum] = i
		}
	}
	return ans
}
